// Depends on tencentcloud-sdk-nodejs version 4.0.3 or higher
import * as db from "./db";
const tencentcloud = require("tencentcloud-sdk-nodejs-lkeap");

const LkeapClient = tencentcloud.lkeap.v20240522.Client;

// 实例化一个认证对象，入参需要传入腾讯云账户 SecretId 和 SecretKey，此处还需注意密钥对的保密
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露，并威胁账号下所有资源的安全性。以下代码示例仅供参考，建议采用更安全的方式来使用密钥，请参见：https://cloud.tencent.com/document/product/1278/85305
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
const clientConfig = {
  credential: {
    secretId: "AKIDABxVosnUw98sMcdQzd3GDvOdcMr67tZ8",
    secretKey: "c8TaXJtGQO8g1A6oIZeYFj16yd7ORIwM",
  },
  region: "ap-guangzhou",
  profile: {
    httpProfile: {
      endpoint: "lkeap.tencentcloudapi.com",
    },
  },
};

// 实例化要请求产品的client对象,clientProfile是可选的
const client = new LkeapClient(clientConfig);

export default async function askDeepseek(wxid: string, content: string) {
  let chats = await db.getChats(wxid);

  const params = {
    Model: "deepseek-v3",
    Messages: [
      {
        Role: "user",
        Content: content,
      },
    ],
  };

  params.Messages.unshift({
    Role: "system",
    Content: `
        你是一个AI 聊天助手，请根据用户的问题给出回答。
        不要用 markdown 排版，直接返回纯文本。
        以下是用户的问题和回答：
        ---
        ${chats.join("\n\n")}
        ---
        `,
  });

  console.log(params);
  let res = await client.ChatCompletions(params);
  let ret = res.Choices[0].Message.Content;
  console.log(res);
  // await db.saveChats(wxid, ret);
  return ret;
}
